﻿using WebApiClient;
using WebApiClient.Attributes;
using System.Collections.Generic;
using ARchGL.Platform.ThirdParty.Device.InputModels;
using ARchGL.Platform.ThirdParty.Device.ViewDtos;
using System.Threading.Tasks;
using ARchGL.Platform.Jianwei.InputModels;
using ARchGL.Platform.Jianwei.ViewModels;

namespace ARchGL.Platform.Jianwei
{
    /// <summary>
    /// 实名制：终端请求接口
    /// 6965
    /// </summary>
    [Timeout(10000)]
    [TraceFilter(OutputTarget = OutputTarget.Console)]
    public interface IRealClientInfoApi : IHttpApi
    {
        /// <summary>
        /// 6.2	人员批量下发
        /// </summary>
        /// <returns></returns>
        [JsonReturn]
        [HttpGet("/httperver/Service/DevivePacketWebSvr.assx/GetAddPerson")]
        ITask<AjaxClientResponse<List<AddPersonDto>>> GetAddPersonList();

        /// <summary>
        /// 6.3	上传识别结果
        /// </summary>
        /// <returns></returns>
        [JsonReturn]
        [HttpPost("/httperver/Service/DevivePacketWebSvr.assx/UploadAttendance")]
        ITask<AjaxClientResponse> UploadAttendance(EncryptRequestInputBase<UploadAttendanceInput> input);

        /// <summary>
        /// 6.4	删除人员信息
        /// </summary>
        [JsonReturn]
        [HttpGet("/httperver/Service/DevivePacketWebSvr.assx/GetDelPerson")]
        ITask<AjaxClientResponse<List<DelPersonDto>>> GetDelPersonList();

        /// <summary>
        /// 6.5	设备操作后回馈消息给服务端
        /// 考勤设备在执行人员批量下发和删除人员操作后，均需调用该接口与服务器之间进行确认
        /// </summary>
        [JsonReturn]
        [HttpPost("/httperver/Service/DevivePacketWebSvr.assx/FeedBack")]
        ITask<AjaxClientResponse> FeedBack(FeedBackInput input);
    }
}
